package com.xindacloud.sms.console.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xindacloud.sms.console.result.Result;
import com.xindacloud.sms.console.system.dto.*;
import com.xindacloud.sms.console.system.entity.SmsUser;
import com.xindacloud.sms.console.system.entity.SmsUserAllowOperator;
import com.xindacloud.sms.console.system.vo.UserRoleVO;
import com.xindacloud.sms.console.system.vo.UserVO;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author czc
 * @since 2019-10-08
 */
public interface ISmsUserService extends IService<SmsUser> {

    SmsUser login(UserLoginDTO userLoginDTO);

    Result logout(SmsUser smsUser);

    Result getUserList(UserDTO userDTO);

    Result addOrUpdateUser(SmsUser smsUser);


    List<SmsUser> querySmsUserListByIds(List<Integer> ids);

    List<UserVO> queryUserInfoByName(String username);

    Result addOrUpdateUserRoles(SmsUserRolesDTO smsUserRolesDTO);

    Result deleteUsers(UserDeleteDTO userDeleteDTO);

    Boolean syncPricingByUserId(Integer userId);

    Result getUserDetail(Integer userId);

    List<SmsUserAllowOperator> queryUserAllowOperatorByUserId(Integer userId, QueryPricingByConditionsDTO conditionsDTO);

    Boolean syncUserPricingByOperatorIds(Integer userId,List<String> operatorIds);

    List<UserRoleVO> queryUserRoleList(Integer userId);

}
